﻿using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.IRepository
{
    public interface IPDAStackingRepository : IBaseRepository<TStackingStorage>
    {
        /// <summary>
        /// 查询托盘表数据
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <returns></returns>
        TPallet GetPallet(TPalletCriteriaModel item);

        /// <summary>
        /// 查询字典项数据
        /// </summary>
        /// <param name="typeCode"></param>
        /// <returns></returns>
        List<TDictItem> GetDictItemListByTypeCode(string ItemCode);

        /// <summary>
        /// 查询入库垛信息
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        List<TStackingStorage> GetStackingStorageList(TStackingStorageCriteriaModel criteria);

        /// <summary>
        /// 根据垛条码查询库存信息
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <returns></returns>
        List<TInventory> GetInventoryByPalletBarcode (string PalletBarcode);

        /// <summary>
        /// 查询入库申请单信息
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        TReceivingOrderDetail GetReceivingOrderDetail(int ? OrderDetailId);

        /// <summary>
        /// 查询物料信息
        /// </summary>
        /// <param name="MaterialId"></param>
        /// <returns></returns>
        TMaterial GetMaterial(string? MaterialCode);

        /// <summary>
        /// 创建组垛
        /// </summary>
        /// <param name="palletBindModel"></param>
        /// <returns></returns>
        bool BuildCreateStackingStorage(PalletBindMaterialModel palletBindModel);
    }
}
